<?php

namespace SisesporteAdmin\Controller;

use Sisesporte\Auth\PessoaAuth;
use Sisesporte\Entity\Endereco;
use Zend\View\Model\ViewModel;
use Doctrine\ORM\EntityManager;

/**
 * Objeto para controle financeiro do sistema
 * 
 * @author ConfidereIT <renato.araujo@confidereit.com.br>
 * 
 * @since jun/2013
 * @version 0.0.1
 */
class FinanceiroController extends CrudController {

    public function __construct() {
        $this->entity = "Sisesporte\Entity\Endereco";
        $this->form = "SisesporteAdmin\Form\FinanceiroForm";
        $this->service = "Sisesporte\Service\FinanceiroService";
        $this->controller = "financeiro";
        $this->route = "sisesporte-admin-interna";
    }

    /**
     * Método para gerar boleto de exemplo
     * 
     * @access public
     * @param null
     * @return ViewModel
     */
    public function boletoAction() {

        $aluno = new PessoaAuth();
        $nomeAluno = $aluno->getLoggedUser()->noPessoa;

        // Código do aluno logado
        $idAluno = $this->params()->fromRoute('id', 0);

        $endereco = $this->getEm()->getRepository("Sisesporte\Entity\Endereco")->findby(array('sqPessoa' => $idAluno), NULL);
        $estado = $this->getEm()->getRepository("Sisesporte\Entity\Uf")->findby(array('sqUf' => $endereco[0]->getSqCidade()->getSqUf()), NULL);
        // Dados para emissão do boleto com informação do aluno LOGADO NO SISTEMA
        $cepAluno = $endereco[0]->getNuCep();
        $cidadeAluno = $endereco[0]->getSqCidade()->getNoCidade();

        if ($endereco[0]->getNoComplemento()) {
            $enderecoAluno = $endereco[0]->getNoEndereco() . " " . $endereco[0]->getNoComplemento();
        } else {
            $enderecoAluno = $endereco[0]->getNoEndereco();
        }
        $estadoAluno = $estado[0]->getSgUf();

        $viewModel = new ViewModel(array(
                    'nomeAluno' => $nomeAluno,
                    'cepAluno' => $cepAluno,
                    'cidadeAluno' => $cidadeAluno,
                    'enderecoAluno' => $enderecoAluno,
                    'estadoAluno' => $estadoAluno));
        return $viewModel->setTerminal(TRUE);
    }

}
